package com.shipwe.loans.utils.helper

/**
 * StatusHelper
 * @Author wwdeng
 * @CreateTime: 2024/10/21 10:44
 * @Annotation：订单、申请状态
 * @des： /v1/userProcess接口得 orderStatus & applyStatus
 */
object ProductStatusHelper {

    class StatusRepository(private val applyStatus: String = "",private val orderStatus: String = ""){

        /**
         * 审核中
         */
        fun isReviewing(): Boolean{
            return when(applyStatus){
                ApplyStatus.CREATED.name,
                ApplyStatus.SYS_CHECK.name,
                ApplyStatus.SYS_APROVAL.name,
                ApplyStatus.MANU_APROVAL.name,
                ApplyStatus.DS_APROVAL.name -> true
                else -> false
            }
        }

        /**
         * 被拒绝
         */
        fun isRejected(): Boolean{
            //申请被拒绝
            val isApplyRejected = when(applyStatus){
                ApplyStatus.SYS_DENIED.name,
                ApplyStatus.MANU_DENIED.name,
                ApplyStatus.DS_DENIED.name -> true
                else -> false
            }
            if (isApplyRejected){
                return true
            }
            //订单状态被拒绝
            return when(orderStatus){
                OrderStatus.DENIED.name -> true
                else -> false
            }
        }

        /**
         * 放款中
         */
        fun isDisbursing(): Boolean{
            return when(orderStatus){
                OrderStatus.CREATED.name,
                OrderStatus.LENDING.name -> true
                else -> false
            }
        }

        /**
         * 待还款
         */
        fun isRepayNow(): Boolean{
            return when(orderStatus){
                OrderStatus.LOANED.name,
                OrderStatus.OVERDUE.name,
                OrderStatus.BAD_DEBT.name -> true
                else -> false
            }
        }
    }

    /**
     * 订单状态
     */
    enum class OrderStatus{

        /**
         * 已创建
         */
        CREATED,

        /**
         * 已拒绝
         */
        DENIED,

        /**
         * 放款中
         */
        LENDING,

        /**
         * 待还款（未逾期）
         */
        LOANED,

        /**
         * 待还款（已逾期
         */
        OVERDUE,

        /**
         * 结清
         */
        SETTLE,

        /**
         * 逾期结清
         */
        OVERDUE_SETTLE,

        /**
         * 手动结清
         */
        ANNUAL_SETTLE,

        /**
         * 逾期手动结清
         */
        OVERDUE_ANNUAL_SETTLE,

        /**
         * 坏账
         */
        BAD_DEBT
    }

    /**
     * 申请状态
     */
    enum class ApplyStatus {

        /**
         * 已创建
         */
        CREATED,

        /**
         * 审核中
         */
        SYS_CHECK,

        /**
         * 已拒绝
         */
        SYS_DENIED,

        /**
         * 机审通过
         */
        SYS_APROVAL,

        /**
         * 人审通过
         */
        MANU_APROVAL,

        /**
         * 人审拒绝
         */
        MANU_DENIED,

        /**
         * 电审通过
         */
        DS_APROVAL,

        /**
         * 电审拒绝
         */
        DS_DENIED
    }
}